package com.example.dw.util;

import java.util.Objects;

public class MathFormulaMethods {


    // 基本数学运算
    public static Double add(Number a, Number b) {
        return a.doubleValue() + b.doubleValue();
    }

    public static Double subtract(Number a, Number b) {
        return a.doubleValue() - b.doubleValue();
    }

    public static Double multiply(Number a, Number b) {
        return a.doubleValue() * b.doubleValue();
    }

    public static Double divide(Number a, Number b) {
        if (b.doubleValue() == 0) {
            throw new IllegalArgumentException("除数不能为零");
        }
        return a.doubleValue() / b.doubleValue();
    }

    // 数学函数
    public static Double power(Number base, Number exponent) {
        return Math.pow(base.doubleValue(), exponent.doubleValue());
    }

    public static Double sqrt(Number value) {
        return Math.sqrt(value.doubleValue());
    }

    public static Double abs(Number value) {
        return Math.abs(value.doubleValue());
    }

    public static Double round(Number value) {
        return (double) Math.round(value.doubleValue());
    }

    // 比较函数
    public static Boolean gt(Number a, Number b) {
        return a.doubleValue() > b.doubleValue();
    }

    public static Boolean lt(Number a, Number b) {
        return a.doubleValue() < b.doubleValue();
    }

    public static Boolean eq(Object a, Object b) {
        return Objects.equals(a, b);
    }
}
